Runtime error 200

Runtime error 200 is the standard error message by Borland's Pascal compilers, standing for Division by zero. Many older computer programs for the MS-DOS operating system fail immediately on loading with this error message. In many cases, they were compiled with an older version of the Borland or Turbo Pascal compiler, which often generated programs that failed if executed on computers with processors faster than about 200 MHz.

Reason

Borland and Turbo Pascal's standard libraries included a procedure called delay(n) (in unit CRT) that halts the execution of the program for a given number of milliseconds. To be able to use this function, every program that includes CRT performs initialization on startup. The problem lies in the internal workings of the initialization routine: the code measures the running time of a busy wait loop and calculates how many times it must be called to have the correct amount of delay. The problem arises when the computer is so fast that the loop takes 0 ticks and these calculations result in an division by zero, which triggers the error.

Solutions

Such programs can be patched to operate correctly, or a Terminate and stay resident (TSR) program can be loaded before running the program in question. See the article on Turbo Pascal and [1].

Various solutions are also discussed in an article by J. R. Stockton.

External Link- Runtime error 200